Title Banner

Previous Book Contents Book Index Next

Inside Macintosh: Telephony /
Chapter 6 - Telephone Tools


Telephone Tools Summary

C Summary

Constants

Telephone Tool Resource Types

#define vbndType                  'vbnd'
#define vdefType                  'vdef'
#define vvalType                  'vval'
#define vsetType                  'vset'
#define vscrType                  'vscr'
#define vlocType                  'vloc'

Main Code Resource Messages

enum {
   telNewMsg                      = 0,
   telDisposeMsg                  = 1,
   telSuspendMsg                  = 2,
   telResumeMsg                   = 3,
   telMenuMsg                     = 4,
   telEventMsg                    = 5,
   telActivateMsg                 = 6,
   telDeactivateMsg               = 7,

   telIdleMsg                     = 50,
   telOpenTermMsg                 = 51,
   telResetTermMsg                = 52,
   telCloseTermMsg                = 53,
   telTermMsgHandMsg              = 54,
   telClrTermMsgHandMsg           = 55,
   telTermEventsSuppMsg           = 56,
   telGetInfoMsg                  = 57,

   telCountDNsMsg                 = 60,
   telDNLookupByIndexMsg          = 61,
   telDNLookupByNameMsg           = 62,
   telCallbackClearMsg            = 63,
   telOtherFeatListMsg            = 64,
   telOtherFeatImplMsg            = 65,
   telToolFunctionsMsg            = 66,
   telOtherFunctionMsg            = 67,

   telGetHookswMsg                = 70,
   telSetHookswMsg                = 71,
   telGetVolumeMsg                = 72,
   telSetVolumeMsg                = 73,
   telAlertMsg                    = 74,
   telGetDisplayMsg               = 75,
   telSetDisplayMsg               = 76,

   telDNSelectMsg                 = 100,
   telDNDisposeMsg                = 101,
   telGetDNInfoMsg                = 102,
   telGetDNFlagsMsg               = 103,
   telDNMsgHandMsg                = 104,
   telClrDNMsgHandMsg             = 105,
   telDNEventsSuppMsg             = 106,

   telCountCAsMsg                 = 110,
   telCALookupMsg                 = 111,
   telCAMsgHandMsg                = 112,
   telClrCAMsgHandMsg             = 113,
   telCAEventsSuppMsg             = 114,
   telSetupCallMsg                = 115,

   telForwardSetMsg               = 120,
   telForwardClearMsg             = 121,
   telDNDSetMsg                   = 122,
   telDNDClearMsg                 = 123,

   telCADisposeMsg                = 200,
   telGetCAStateMsg               = 201,
   telGetCAFlagsMsg               = 202,
   telGetCAInfoMsg                = 203,
   telConnectMsg                  = 204,
   telDialDigitsMsg               = 205,
   telAcceptCallMsg               = 206,
   telRejectCallMsg               = 207,
   telDeflectCallMsg              = 208,
   telAnswerCallMsg               = 209,
   telDropMsg                     = 210,
   telHoldMsg                     = 211,
   telRetrieveMsg                 = 212,
   telConfSplitMsg                = 213,
   telTransfBlindMsg              = 214,
   telCallbackSetMsg              = 215,
   telCallbackNowMsg              = 216,
   telCallPickupMsg               = 217,
   telParkCallMsg                 = 218,
   telRetrieveParkedCallMsg       = 219,
   telVoiceMailAccessMsg          = 220,
   telPagingMsg                   = 221,
   telIntercomMsg                 = 222,

   telConfPrepMsg                 = 230,
   telConfEstMsg                  = 231,
   telTransfPrepMsg               = 232,
   telTransfEstMsg                = 233,
   
   telGetDNSoundInputMsg          = 240,
   telDisposeDNSoundInputMsg      = 241,
   telGetDNSoundOutputMsg         = 242,
   telDisposeDNSoundOutputMsg     = 243,
   telGetHSSoundInputMsg          = 244,
   telDisposeHSSoundInputMsg      = 245,
   telGetHSSoundOutputMsg         = 246,
   telDisposeHSSoundOutputMsg     = 247,
   telDNSetDTMFMsg                = 248,
   telDNGetDTMFMsg                = 249,
   telHSSetDTMFMsg                = 250,
   telHSGetDTMFMsg                = 251,
   telGetDNStatusMsg              = 252,
   telGetDNProgressDetMsg         = 253,
   telSetDNProgressDetMsg         = 254,
   
   telDNSetAutoAnswerMsg          = 260,
   telDNTollSaverControlMsg       = 261,
   telSetIndHSConnectMsg          = 262,
   telGetIndHSConnectMsg          = 263,
   
   telCAVoiceDetectMsg            = 270,
   telCASilenceDetectMsg          = 271
};

Validation Code Resource Messages

enum {
   telValidateMsg                 = 0,
   telDefaultMsg                  = 1
};

Setup-Definition Code Resource Messages

enum {
   telSpreflightMsg               = 0,
   telSsetupMsg                   = 1,
   telSitemMsg                    = 2,
   telSfilterMsg                  = 3,
   telScleanupMsg                 = 4
};

Scripting Language Interface Code Resource Messages

enum {
   telMgetMsg                     = 0,
   telMsetMsg                     = 1
};

Localization Code Resource Messages

enum {
   telL2EnglishMsg                = 0,
   telL2IntlMsg                   = 1
};

Terminal Messages

enum {
   telTermHookMsg                 = 0x00000001,
   telTermKeyMsg                  = 0x00000002,
   telTermVolMsg                  = 0x00000004,
   telTermDisplayMsg              = 0x00000008,
   telTermEnableMsg               = 0x00000010,
   telTermOpenMsg                 = 0x00000020,
   telTermCloseMsg                = 0x00000040,
   telTermResetMsg                = 0x00000080,
   telTermErrorMsg                = 0x00000100,
   telTermIndHSStateChgMsg        = 0x00000200,
   telTermIndHSConnectMsg         = 0x00000400,
   telTermKeyImmMsg               = 0x00000800,
   telTermVolStateMsg             = 0x00001000,
   telTermOtherMsg                = 0x80000000
};

Directory Number Messages

enum {
   telDNForwardMsg                = 0x00000001,
   telDNDNDMsg                    = 0x00000002,
   telDNVoiceMailMsg              = 0x00000004,
   telDNSelectedMsg               = 0x00000008,
   telDNOtherMsg                  = 0x80000000
};

Call Appearance Messages

enum {
   telCAAlertingMsg               = 0x00000001,
   telCAOfferMsg                  = 0x00000002,
   telCAProgressMsg               = 0x00000004,
   telCAOutgoingMsg               = 0x00000008,
   telCADisconnectMsg             = 0x00000010,
   telCAActiveMsg                 = 0x00000020,
   telCAConferenceMsg             = 0x00000040,
   telCATransferMsg               = 0x00000080,
   telCAHoldMsg                   = 0x00000100,
   telCADigitsMsg                 = 0x00000200,
   telCACallParkMsg               = 0x00000400,
   telCACallbackMsg               = 0x00000800,
   telCARejectMsg                 = 0x00001000,
   telCADeflectMsg                = 0x00002000,
   telCAForwardMsg                = 0x00004000,
   telCAConferenceSplitMsg        = 0x00008000,
   telCAConferenceDropMsg         = 0x00010000,
   telCAQueuedMsg                 = 0x00020000,
   telCAInUseMsg                  = 0x00040000,
   telCACallPickupMsg             = 0x00080000,
   telCAPagingMsg                 = 0x00100000,
   telCAIntercomMsg               = 0x00200000,
   telCAModemToneMsg              = 0x00400000,
   telCAFaxToneMsg                = 0x00800000,
   telCAIdleMsg                   = 0x01000000,
   telCASuccessiveAlertMsg        = 0x02000000,
   telCAUserUserInfoMsg           = 0x04000000,
   telCAHandOffMsg                = 0x08000000,
   telCAVoiceDetectedMsg          = 0x10000000,
   telCASilenceDetectedMsg        = 0x20000000,
   telCADigitsImmMsg              = 0x40000000,
   telCAOtherMsg                  = 0x80000000
};

Data Types

typedef pascal void              (*TELTermProcPtr)(Ptr pb);
typedef pascal void              (*TELDNProcPtr)(Ptr pb);
typedef pascal void              (*TELCAProcPtr)(Ptr pb);

Call Forwarding Parameter Block

struct TELForwardPB {
   StringPtr                      forwardDN;
   StringPtr                      forwardPartyName;
   StringPtr                      forwardSubaddress;
   short                          forwardType;
   short                          numRings;
};
typedef struct TELForwardPB TELForwardPB;

Terminal Message Parameter Block

struct TELTermMsgPB {
   short                          toolID;
   short                          tRef;
   long                           msg;
   short                          mtype;
   short                          value;
};
typedef struct TELTermMsgPB TELTermMsgPB;

Directory Number Message Parameter Block

struct TELDNMsgPB {
   short                          toolID;
   short                          tRef;
   short                          dnRef;
   long                           msg;
   short                          mtype;
   short                          value;
   StringPtr                      rmtDN;
   StringPtr                      rmtName;
   StringPtr                      rmtSubaddress;
};
typedef struct TELDNMsgPB TELDNMsgPB;

Call Appearance Generic Message Parameter Block

struct TELCAGenericMsgPB {
   short                          toolID;
   short                          tRef;
   short                          dnRef;
   short                          caRef;
   long                           msg;
   short                          mtype;
   short                          value;
   StringPtr                      rmtDN;
   StringPtr                      rmtName;
   StringPtr                      rmtSubaddress;
   short                          dialType;
};
typedef struct TELCAGenericMsgPB TELCAGenericMsgPB;

Call Appearance Disconnect Message Parameter Block

struct TELCADisconMsgPB {
   short                          toolID;
   short                          tRef;
   short                          dnRef;
   short                          caRef;
   long                           msg;
   short                          mtype;
   short                          value;
};
typedef struct TELCADisconMsgPB TELCADisconMsgPB;

Call Appearance Conference Message Parameter Block

struct TELCAConfMsgPB {
   short                          toolID;
   short                          tRef;
   short                          dnRef;
   short                          caRef;
   long                           msg;
   short                          mtype;
   short                          value;
};
typedef struct TELCAConfMsgPB TELCAConfMsgPB;

Call Appearance Transfer Message Parameter Block

struct TELCATransfMsgPB {
   short                          toolID;
   short                          tRef;
   short                          dnRef;
   short                          caRef;
   long                           msg;
   short                          mtype;
   short                          value;
   StringPtr                      rmtDN;
   StringPtr                      rmtName;
   StringPtr                      rmtSubaddress;
   short                          dialType;
};
typedef struct TELCATransfMsgPB TELCATransfMsgPB;

Call Appearance Incoming or Outgoing Message Parameter Block

struct TELCAInOutMsgPB {
   short                          toolID;
   short                          tRef;
   short                          dnRef;
   short                          caRef;
   long                           msg;
   short                          mtype;
   short                          value;
   StringPtr                      rmtDN;
   StringPtr                      rmtName;
   StringPtr                      rmtSubaddress;
   short                          caState;
   short                          intExt;
   short                          callType;
   short                          dialType;
   short                          bearerType;
   short                          rate;
   StringPtr                      routeDN;
   StringPtr                      routeName;
   StringPtr                      routeSubaddress;
   long                           featureFlags;
   long                           otherFeatures;
   long                           telCAPrivate;
};
typedef struct TELCAInOutMsgPB TELCAInOutMsgPB;

Setup-Definition Structure

struct TELSetupStruct {
   DialogPtr                      theDialog;
   short                          count;
   Ptr                            theConfig;
   short                          procID;
};
typedef struct TELSetupStruct TELSetupStruct;
typedef TELSetupStruct *TELSetupPtr;

Tool-Defined Functions

pascal short MyVDEF              (TELHandle hTEL, 
                                  TELTermPtr pTELTerm, 
                                  TELDNHandle hDN, 
                                  TELCAHandle hCA, 
                                  short msg, 
                                  long p1, 
                                  long p2, 
                                  long p3);
pascal long MyVVAL               (TELHandle hTEL, 
                                  short msg, 
                                  long p1, 
                                  long p2, 
                                  long p3);
pascal long MyVSET               (TELSetupPtr pSetup, 
                                  short msg, 
                                  long p1, 
                                  long p2, 
                                  long p3);
pascal long MyVSCR               (TELHandle hTEL, 
                                  short msg, 
                                  long p1, 
                                  long p2, 
                                  long p3);
pascal long MyVLOC               (TELHandle hTEL, 
                                  short msg, 
                                  long p1, 
                                  long p2, 
                                  long p3);

Pascal Summary

Constants

Telephone Tool Resource Types

CONST
   vbndType                       = 'vbnd';
   vdefType                       = 'vdef';
   vvalType                       = 'vval';
   vsetType                       = 'vset';
   vscrType                       = 'vscr';
   vlocType                       = 'vloc';

Main Code Resource Messages

CONST
   telNewMsg                      = 0;
   telDisposeMsg                  = 1;
   telSuspendMsg                  = 2;
   telResumeMsg                   = 3;
   telMenuMsg                     = 4;
   telEventMsg                    = 5;
   telActivateMsg                 = 6;
   telDeactivateMsg               = 7;

   telIdleMsg                     = 50;
   telOpenTermMsg                 = 51;
   telResetTermMsg                = 52;
   telCloseTermMsg                = 53;
   telTermMsgHandMsg              = 54;
   telClrTermMsgHandMsg           = 55;
   telTermEventsSuppMsg           = 56;
   telGetInfoMsg                  = 57;

   telCountDNsMsg                 = 60;
   telDNLookupByIndexMsg          = 61;
   telDNLookupByNameMsg           = 62;
   telCallbackClearMsg            = 63;
   telOtherFeatListMsg            = 64;
   telOtherFeatImplMsg            = 65;
   telToolFunctionsMsg            = 66;
   telOtherFunctionMsg            = 67;

   telGetHookswMsg                = 70;
   telSetHookswMsg                = 71;
   telGetVolumeMsg                = 72;
   telSetVolumeMsg                = 73;
   telAlertMsg                    = 74;
   telGetDisplayMsg               = 75;
   telSetDisplayMsg               = 76;

   telDNSelectMsg                 = 100;
   telDNDisposeMsg                = 101;
   telGetDNInfoMsg                = 102;
   telGetDNFlagsMsg               = 103;
   telDNMsgHandMsg                = 104;
   telClrDNMsgHandMsg             = 105;
   telDNEventsSuppMsg             = 106;

   telCountCAsMsg                 = 110;
   telCALookupMsg                 = 111;
   telCAMsgHandMsg                = 112;
   telClrCAMsgHandMsg             = 113;
   telCAEventsSuppMsg             = 114;
   telSetupCallMsg                = 115;

   telForwardSetMsg               = 120;
   telForwardClearMsg             = 121;
   telDNDSetMsg                   = 122;
   telDNDClearMsg                 = 123;

   telCADisposeMsg                = 200;
   telGetCAStateMsg               = 201;
   telGetCAFlagsMsg               = 202;
   telGetCAInfoMsg                = 203;
   telConnectMsg                  = 204;
   telDialDigitsMsg               = 205;
   telAcceptCallMsg               = 206;
   telRejectCallMsg               = 207;
   telDeflectCallMsg              = 208;
   telAnswerCallMsg               = 209;
   telDropMsg                     = 210;
   telHoldMsg                     = 211;
   telRetrieveMsg                 = 212;
   telConfSplitMsg                = 213;
   telTransfBlindMsg              = 214;
   telCallbackSetMsg              = 215;
   telCallbackNowMsg              = 216;
   telCallPickupMsg               = 217;
   telParkCallMsg                 = 218;
   telRetrieveParkedCallMsg       = 219;
   telVoiceMailAccessMsg          = 220;
   telPagingMsg                   = 221;
   telIntercomMsg                 = 222;

   telConfPrepMsg                 = 230;
   telConfEstMsg                  = 231;
   telTransfPrepMsg               = 232;
   telTransfEstMsg                = 233;
   
   telGetDNSoundInputMsg          = 240;
   telDisposeDNSoundInputMsg      = 241;
   telGetDNSoundOutputMsg         = 242;
   telDisposeDNSoundOutputMsg     = 243;
   telGetHSSoundInputMsg          = 244;
   telDisposeHSSoundInputMsg      = 245;
   telGetHSSoundOutputMsg         = 246;
   telDisposeHSSoundOutputMsg     = 247;
   telDNSetDTMFMsg                = 248;
   telDNGetDTMFMsg                = 249;
   telHSSetDTMFMsg                = 250;
   telHSGetDTMFMsg                = 251;
   telGetDNStatusMsg              = 252;
   telGetDNProgressDetMsg         = 253;
   telSetDNProgressDetMsg         = 254;
   
   telDNSetAutoAnswerMsg          = 260;
   telDNTollSaverControlMsg       = 261;
   telSetIndHSConnectMsg          = 262;
   telGetIndHSConnectMsg          = 263;
   
   telCAVoiceDetectMsg            = 270;
   telCASilenceDetectMsg          = 271;

Validation Code Resource Messages

CONST
   telValidateMsg                 = 0;
   telDefaultMsg                  = 1;

Setup-Definition Code Resource Messages

CONST
   telSpreflightMsg               = 0;
   telSsetupMsg                   = 1;
   telSitemMsg                    = 2;
   telSfilterMsg                  = 3;
   telScleanupMsg                 = 4;

Scripting Language Interface Code Resource Messages

CONST
   telMgetMsg                     = 0;
   telMsetMsg                     = 1;

Localization Code Resource Messages

CONST
   telL2EnglishMsg                = 0;
   telL2IntlMsg                   = 1;

Terminal Messages

CONST
   telTermHookMsg                 = $00000001;
   telTermKeyMsg                  = $00000002;
   telTermVolMsg                  = $00000004;
   telTermDisplayMsg              = $00000008;
   telTermEnableMsg               = $00000010;
   telTermOpenMsg                 = $00000020;
   telTermCloseMsg                = $00000040;
   telTermResetMsg                = $00000080;
   telTermErrorMsg                = $00000100;
   telTermIndHSStateChgMsg        = $00000200;
   telTermIndHSConnectMsg         = $00000400;
   telTermKeyImmMsg               = $00000800;
   telTermVolStateMsg             = $00001000;
   telTermOtherMsg                = $80000000;

Directory Number Messages

CONST
   telDNForwardMsg                = $00000001;
   telDNDNDMsg                    = $00000002;
   telDNVoiceMailMsg              = $00000004;
   telDNSelectedMsg               = $00000008;
   telDNOtherMsg                  = $80000000;

Call Appearance Messages

CONST
   telCAAlertingMsg               = $00000001;
   telCAOfferMsg                  = $00000002;
   telCAProgressMsg               = $00000004;
   telCAOutgoingMsg               = $00000008;
   telCADisconnectMsg             = $00000010;
   telCAActiveMsg                 = $00000020;
   telCAConferenceMsg             = $00000040;
   telCATransferMsg               = $00000080;
   telCAHoldMsg                   = $00000100;
   telCADigitsMsg                 = $00000200;
   telCACallParkMsg               = $00000400;
   telCACallbackMsg               = $00000800;
   telCARejectMsg                 = $00001000;
   telCADeflectMsg                = $00002000;
   telCAForwardMsg                = $00004000;
   telCAConferenceSplitMsg        = $00008000;
   telCAConferenceDropMsg         = $00010000;
   telCAQueuedMsg                 = $00020000;
   telCAInUseMsg                  = $00040000;
   telCACallPickupMsg             = $00080000;
   telCAPagingMsg                 = $00100000;
   telCAIntercomMsg               = $00200000;
   telCAModemToneMsg              = $00400000;
   telCAFaxToneMsg                = $00800000;
   telCAIdleMsg                   = $01000000;
   telCASuccessiveAlertMsg        = $02000000;
   telCAUserUserInfoMsg           = $04000000;
   telCAHandOffMsg                = $08000000;
   telCAVoiceDetectedMsg          = $10000000;
   telCASilenceDetectedMsg        = $20000000;
   telCADigitsImmMsg              = $40000000;
   telCAOtherMsg                  = $80000000;

Data Types

Call Forwarding Parameter Block

TYPE
   TELForwardPB = 
   RECORD
      forwardDN:                  StringPtr;
      forwardPartyName:           StringPtr;
      forwardSubaddress:          StringPtr;
      forwardType:                Integer;
      numRings:                   Integer;
   END;

Terminal Message Parameter Block

   TELTermMsgPB = 
   RECORD
      toolID:                     Integer;
      tRef:                       Integer;
      msg:                        LongInt;
      mtype:                      Integer;
      value:                      Integer;
   END;

Directory Number Message Parameter Block

   TELDNMsgPB = 
   RECORD
      toolID:                     Integer;
      tRef:                       Integer;
      dnRef:                      Integer;
      msg:                        LongInt;
      mtype:                      Integer;
      value:                      Integer;
      rmtDN:                      StringPtr;
      rmtName:                    StringPtr;
      rmtSubaddress:              StringPtr;
   END;

Call Appearance Generic Message Parameter Block

   TELCAGenericMsgPB = 
   RECORD
      toolID:                     Integer;
      tRef:                       Integer;
      dnRef:                      Integer;
      caRef:                      Integer;
      msg:                        LongInt;
      mtype:                      Integer;
      value:                      Integer;
      rmtDN:                      StringPtr;
      rmtName:                    StringPtr;
      rmtSubaddress:              StringPtr;
      dialType:                   Integer;
   END;

Call Appearance Disconnect Message Parameter Block

   TELCADisconMsgPB = 
   RECORD
      toolID:                     Integer;
      tRef:                       Integer;
      dnRef:                      Integer;
      caRef:                      Integer;
      msg:                        LongInt;
      mtype:                      Integer;
      value:                      Integer;
   END;

Call Appearance Conference Message Parameter Block

   TELCAConfMsgPB = 
   RECORD
      toolID:                     Integer;
      tRef:                       Integer;
      dnRef:                      Integer;
      caRef:                      Integer;
      msg:                        LongInt;
      mtype:                      Integer;
      value:                      Integer;
   END;

Call Appearance Transfer Message Parameter Block

   TELCATransfMsgPB = 
   RECORD
      toolID:                     Integer;
      tRef:                       Integer;
      dnRef:                      Integer;
      caRef:                      Integer;
      msg:                        LongInt;
      mtype:                      Integer;
      value:                      Integer;
      rmtDN:                      StringPtr;
      rmtName:                    StringPtr;
      rmtSubaddress:              StringPtr;
      dialType:                   Integer;
   END;

Call Appearance Incoming or Outgoing Message Parameter Block

   TELCAInOutMsgPB = 
   RECORD
      toolID:                     Integer;
      tRef:                       Integer;
      dnRef:                      Integer;
      caRef:                      Integer;
      msg:                        LongInt;
      mtype:                      Integer;
      value:                      Integer;
      rmtDN:                      StringPtr;
      rmtName:                    StringPtr;
      rmtSubaddress:              StringPtr;
      caState:                    Integer;
      intExt:                     Integer;
      callType:                   Integer;
      dialType:                   Integer;
      bearerType:                 Integer;
      rate:                       Integer;
      routeDN:                    StringPtr;
      routeName:                  StringPtr;
      routeSubaddress:            StringPtr;
      featureFlag:                LongInt;
      OtherFeatures:              LongInt;
      telCAPrivate:               LongInt;
   END;

Setup-Definition Structure

   TELSetupStruct =
   RECORD
      theDialog:                  DialogPtr;
      count:                      Integer;
      theConfig:                  Ptr;
      procID:                     Integer;
   END;
   TELSetupPtr                    = ^TELSetupStruct;

Tool-Defined Functions

FUNCTION MyVDEF                  (hTEL: TELHandle; 
                                  pTELTerm: TELTermPtr; 
                                  hDN: TELHandle; 
                                  hTEL: TELDNHandle; 
                                  hCA: TELCAHandle; 
                                  p1: LongInt; 
                                  p2: LongInt; 
                                  p3: LongInt): Integer;
FUNCTION MyVVAL                  (hTEL: TELHandle; 
                                  msg: Integer; 
                                  p1: LongInt; 
                                  p2: LongInt; 
                                  p3: LongInt): LongInt;
FUNCTION MyVSET                  (pSetup: TELSetupPtr; 
                                  msg: Integer; 
                                  p1: LongInt; 
                                  p2: LongInt; 
                                  p3: LongInt): LongInt;
FUNCTION MyVSCR                  (hTEL: TELHandle; 
                                  msg: Integer; 
                                  p1: LongInt; 
                                  p2: LongInt; 
                                  p3: LongInt): LongInt;
FUNCTION MyVLOC                  (hTEL: TELHandle; 
                                  msg: Integer; 
                                  p1: LongInt; 
                                  p2: LongInt; 
                                  p3: LongInt): LongInt;


Previous Book Contents Book Index Next

© Apple Computer, Inc.
13 DEC 1996



Navigation graphic, see text links

Main | Top of Section | What's New | Apple Computer, Inc. | Find It | Feedback | Help